SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO






CREATE PROCEDURE [dbo].[SP_TXMVTO_CNTB_I27]
/*-------------------------------------------------------------------*/
/*----- Empresa           : OFISIS S.A.                          ----*/
/*----- Cliente           : OFISIS S.A.                          ----*/
/*----- Sistema           : Contabilidad                         ----*/
/*----- Modulo            : Empresa                              ----*/
/*----- Programa          : Ejecucion Procesos Cierre en Batch   ----*/
/*-----                     despues Ajuste Dif Cambio Batch      ----*/
/*----- Nombre            : SP_TXMVTO_CNTB_I27                   ----*/
/*----- Script            : TXMVTO_CNTB                          ----*/
/*----- Desarrollado por  : Gustavo Espinoza Espinoza            ----*/
/*----- Fecha             : 28/11/2003                           ----*/
/*----- Base de Datos     : MS SQL Server                        ----*/
/*----- Version BD        : 8.0                                  ----*/
/*-------------------------------------------------------------------*/
/*-------------------------------------------------------------------*/
/*---- Modificado 1 por     :   PERCY GARCIA                                  ----*/
/*---- Fecha Modificaci>n   :    19/02/2004                                ----*/
/*---- Detalle Modificaci>n :     JOIN PARA SACAR EL NUMERO DE ASIENTO CASO 'COP' ESTA MAL  ----*/
/*--- - PARA SACAR EL NUMERO DE ASIENTO SIEMPRE SACA 1  ---- */
/*-------------------------------------------------------------------*/
/*---- Comentarios: Valida Fecha de Proceso	                 ----*/
/*---- Drop Trigger TD_TXMVTO_CNTB_D01   COMMIT                  ----*/
/*-------------------------------------------------------------------*/
/*-------------------------------------------------------------------*/
/*----- Drop proc SP_TXMVTO_CNTB_I27                             ----*/
/*----- Grant all on SP_TXMVTO_CNTB_I27 to PUBLIC                ----*/
/*----- exec SP_TXMVTO_CNTB_I27 '01','OFITESO',2,'PAS'           ----*/
/*-------------------------------------------------------------------*/
@ISCO_EMPR            TD_VC_002,
@INNU_CNTB_EMPR       TD_IN_001,
@ISCO_UNID_CNTB       TD_VC_003,
@INNU_ANNO            TD_IN_004_ANNO,
@INNU_MESE            TD_IN_002_MESE
AS
Declare
@VNNU_FACT_REDO      TD_NU_015_006,
@VSST_GEST_LINE      TD_VC_001,
@VSST_ASIE_GEST      TD_VC_003,
@VSCO_OPRC_GEST      TD_VC_003,
@VSNU_ASTO_GEST      TD_VC_010

Begin Tran  SP_TXMVTO_CNTB_I27

    Select @VNNU_FACT_REDO = IsNull(NU_FACT_REDO,0)
    from   TTCNTB_EMPR
    Where  CO_EMPR      = @ISCO_EMPR
    And    NU_CNTB_EMPR = @INNU_CNTB_EMPR

    /*-- Redondeo ------------------------------------------------------------------------------------*/
--    Exec SP_TXMVTO_CNTB_I04 @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @INNU_ANNO, 
--         @INNU_MESE, @VNNU_FACT_REDO

    /*-- Gestion ------------------------------------------------------------------------------------*/
    SELECT @VSST_GEST_LINE = ST_GEST_LINE, 
           @VSST_ASIE_GEST = ST_ASIE_GEST
    FROM TMPARA_CONT
    WHERE CO_EMPR = @ISCO_EMPR

      If @VSST_ASIE_GEST = 'COP'
      Begin

        --verifica si esta activo la operacion de gestion
        Select @VSCO_OPRC_GEST = Null

        Select @VSCO_OPRC_GEST = IsNull(Max(T2.CO_OPRC_CNTB),Null)
        From TTCNTB_EMPR T1, TTIDEN_OPER T2, TMOPRC_CNTB T3
        Where T1.CO_EMPR = @ISCO_EMPR
        And   T1.NU_CNTB_EMPR = @INNU_CNTB_EMPR
        And   T2.CO_EMPR = T1.CO_EMPR
        And   T2.NU_CNTB_EMPR = T1.NU_CNTB_EMPR
        And   T2.ID_OPRC = T1.ID_GEST
        And   T3.CO_EMPR = T1.CO_EMPR
        And   T3.CO_OPRC_CNTB = T2.CO_OPRC_CNTB
        And   T3.TI_SITU = 'ACT'

        If @VSCO_OPRC_GEST Is Not Null
        Begin
          Select @VSNU_ASTO_GEST = Null
--          Select @VSNU_ASTO_GEST = Max( Substring('0000000000',1, 10 -  Len(Convert( Varchar,NU_ULTI_ASTO + 1)) ) + 
--                 Convert( Varchar,NU_ULTI_ASTO + 1) )
          Select @VSNU_ASTO_GEST = Max( Substring('0000000000',1, 10 -  Len(Convert( Varchar, 0 + 1)) ) + 
                 Convert( Varchar, 0 + 1) )
          From TCFECH_PROC
          Where CO_EMPR = @ISCO_EMPR
          And   NU_CNTB_EMPR = @INNU_CNTB_EMPR
          And   CO_UNID_CNTB = @ISCO_UNID_CNTB --@INNU_CNTB_EMPR
          And   NU_ANNO      = @INNU_ANNO
          And   NU_MESE      = @INNU_MESE
          And   CO_OPRC_CNTB = @VSCO_OPRC_GEST

--####
--select 'entro'

          If @VSNU_ASTO_GEST Is Not Null 
            Exec SP_TXMVTO_CNTB_I18 @ISCO_EMPR, @INNU_CNTB_EMPR, @ISCO_UNID_CNTB, @INNU_ANNO, 
                                    @INNU_MESE, @VSCO_OPRC_GEST, @VSNU_ASTO_GEST

--####
---select 'salio'
        End --( If @VSCO_OPRC_GEST Is Not Null )

      End --( If @VSST_ASIE_GEST = 'COP' )
      Else If @VSST_ASIE_GEST = 'ORI'
      Begin
        Exec SP_TXMVTO_CNTB_I23 @ISCO_EMPR, @INNU_CNTB_EMPR, @INNU_ANNO, @INNU_MESE
      End --( If @VSST_ASIE_GEST = 'ORI' )

   If @@error <> 0
   Begin
      Rollback tran
      Return
    End

--####
--select 'entro mayo'


    /*-- Mayorizacion --------------------------------------------------------------------------------*/
    Exec SP_TASALD_EMPR_I01 @ISCO_EMPR, @ISCO_UNID_CNTB, @INNU_CNTB_EMPR,
         @INNU_ANNO, @INNU_MESE, @INNU_ANNO, @INNU_MESE

--####
---select 'salio mayo'


    /*-- Actualiza Correlativo -----------------------------------------------------------------------*/
   /* Exec SP_TTINTE_CNTB_U01 @ISCO_EMPR, @INNU_CNTB_EMPR*/

   If @@error <> 0
   Begin
      Rollback tran
      Return
    End

Commit Transaction

/*--------------------------- Fin ---------------------------------*/





GO
